package to4.client;

import java.util.Date;

import com.google.gwt.event.dom.client.ChangeEvent;
import com.google.gwt.event.dom.client.ChangeHandler;
import com.google.gwt.event.dom.client.ClickEvent;
import com.google.gwt.event.dom.client.ClickHandler;
import com.google.gwt.event.dom.client.KeyUpEvent;
import com.google.gwt.event.dom.client.KeyUpHandler;
import com.google.gwt.user.client.Window;
import com.google.gwt.user.client.rpc.AsyncCallback;
import com.google.gwt.user.client.ui.Anchor;
import com.google.gwt.user.client.ui.Button;
import com.google.gwt.user.client.ui.CheckBox;
import com.google.gwt.user.client.ui.FlowPanel;
import com.google.gwt.user.client.ui.HorizontalPanel;
import com.google.gwt.user.client.ui.Image;
import com.google.gwt.user.client.ui.Label;
import com.google.gwt.user.client.ui.ListBox;
import com.google.gwt.user.client.ui.Panel;
import com.google.gwt.user.client.ui.PasswordTextBox;
import com.google.gwt.user.client.ui.RadioButton;
import com.google.gwt.user.client.ui.TabBar;
import com.google.gwt.user.client.ui.TabPanel;
import com.google.gwt.user.client.ui.TextArea;
import com.google.gwt.user.client.ui.TextBox;
import com.google.gwt.user.client.ui.VerticalPanel;

public class Registreren {
	private String labfiets;
	private String labroken;
	private String labreizen;
	private int aantalCheckBox;
	private boolean[] provincies = new boolean[12];


	private TO4 thema;
	public Registreren(TO4 thema5){
		this.thema = thema5;
	}

	public Panel createPage(){
		FlowPanel registreren = new FlowPanel();
		//Accountgegevens tab
		FlowPanel regPanel = new FlowPanel();
		final TabPanel regTab = new TabPanel();
		regTab.setAnimationEnabled(true);
		TabBar regBar = new TabBar();
		regBar = regTab.getTabBar();

		final Image goed0 = new Image("vink.png");
		goed0.setVisible(false);
		final Image fout0 = new Image("kruis.png");
		fout0.setVisible(false);
		final Image goed1 = new Image("vink.png");
		goed1.setVisible(false);
		final Image fout1 = new Image("kruis.png");
		fout1.setVisible(false);
		final Image goed3 = new Image("vink.png");
		goed3.setVisible(false);
		final Image fout3 = new Image("kruis.png");
		fout3.setVisible(false);
		final Image goed4 = new Image("vink.png");
		goed4.setVisible(false);
		final Image fout4 = new Image("kruis.png");
		fout4.setVisible(false);
		final Image goed5 = new Image("vink.png");
		goed5.setVisible(false);
		final Image fout5 = new Image("kruis.png");
		fout5.setVisible(false);
		final Image goed6 = new Image("vink.png");
		goed6.setVisible(false);
		final Image fout6 = new Image("kruis.png");
		fout6.setVisible(false);
		final Image goed7 = new Image("vink.png");
		goed7.setVisible(false);
		final Image fout7 = new Image("kruis.png");
		fout7.setVisible(false);
		final Image goed8 = new Image("vink.png");
		goed8.setVisible(false);
		final Image fout8 = new Image("kruis.png");
		fout8.setVisible(false);
		final Image goed9 = new Image("vink.png");
		goed9.setVisible(false);
		final Image fout9 = new Image("kruis.png");
		fout9.setVisible(false);
		final Image goed10 = new Image("vink.png");
		goed10.setVisible(false);
		goed10.addStyleName("emailGoed");
		final Image fout10 = new Image("kruis.png");
		fout10.setVisible(false);
		fout10.addStyleName("emailGoed");
		final Image goed11 = new Image("vink.png");
		goed11.setVisible(false);
		final Image fout11 = new Image("kruis.png");
		fout11.setVisible(false);
		final Image goed12 = new Image("vink.png");
		goed12.setVisible(false);
		final Image fout12 = new Image("kruis.png");
		fout12.setVisible(false);
		final Image goed13 = new Image("vink.png");
		goed13.setVisible(false);
		final Image fout13 = new Image("kruis.png");
		fout13.setVisible(false);
		final Image goed14 = new Image("vink.png");
		goed14.setVisible(false);
		final Image fout14 = new Image("kruis.png");
		fout14.setVisible(false);
		final Image goed15 = new Image("vink.png");
		goed15.setVisible(false);
		final Image fout15 = new Image("kruis.png");
		fout15.setVisible(false);
		final Image goed16 = new Image("vink.png");
		goed16.setVisible(false);
		final Image fout16 = new Image("kruis.png");
		fout16.setVisible(false);
		final Image goed17 = new Image("vink.png");
		goed17.setVisible(false);
		final Image goed18 = new Image("vink.png");
		goed18.setVisible(false);
		final Image goed19 = new Image("vink.png");
		goed19.setVisible(false);
		final Image goed20 = new Image("vink.png");
		goed20.setVisible(false);
		final Image goed21 = new Image("vink.png");
		goed21.setVisible(false);
		final Image goed22 = new Image("vink.png");
		goed22.setVisible(false);


		VerticalPanel vertical1 = new VerticalPanel();
		HorizontalPanel horizon1 = new HorizontalPanel();
		HorizontalPanel horizon2 = new HorizontalPanel();
		HorizontalPanel horizon3 = new HorizontalPanel();
		HorizontalPanel horizon4 = new HorizontalPanel();
		HorizontalPanel horizon5 = new HorizontalPanel();
		HorizontalPanel horizon6 = new HorizontalPanel();
		HorizontalPanel horizon7 = new HorizontalPanel();
		HorizontalPanel horizon8 = new HorizontalPanel();
		HorizontalPanel horizon9 = new HorizontalPanel();
		HorizontalPanel horizon10 = new HorizontalPanel();
		HorizontalPanel horizon11 = new HorizontalPanel();
		HorizontalPanel horizon12 = new HorizontalPanel();
		HorizontalPanel horizon13 = new HorizontalPanel();
		HorizontalPanel horizon14 = new HorizontalPanel();
		HorizontalPanel horizon15 = new HorizontalPanel();

		Label emailAdres = new Label("E-mailadres");
		final TextBox emailBox = new TextBox();
		emailBox.setVisibleLength(40);
		emailAdres.setStyleName("registreerEmailLab");
		emailBox.setStyleName("registreerTextBoxEmail");
		emailBox.addKeyUpHandler(new KeyUpHandler() {

			@Override
			public void onKeyUp(KeyUpEvent event) {
				thema.heeftInlog(emailBox.getText());
				if (emailBox.getText().matches("^[a-zA-Z0-9.-_]{3,}@[a-zA-Z0-9]+\\.[a-zA-Z.]{1,5}[a-zA-Z]$")){
					goed10.setVisible(true);
					fout10.setVisible(false);
				}
				else {
					goed10.setVisible(false);
					fout10.setVisible(true);
				}
			}
		});

		Label wachtwoord1 = new Label("Voer uw gewenste wachtwoord:");
		wachtwoord1.setStyleName("registreerWachtwoord1Lab");
		final PasswordTextBox wachtwoordText1 = new PasswordTextBox();
		wachtwoordText1.setStyleName("registreerTextBoxWachtwoord1");
		wachtwoordText1.setVisibleLength(40);
		Label wachtwoord2 = new Label("Voer uw wachtwoord nogmaal in:");
		wachtwoord2.setStyleName("registreerWachtwoord1Lab");
		final PasswordTextBox wachtwoordText2 = new PasswordTextBox();
		wachtwoordText2.setStyleName("registreerTextBoxWachtwoord1");
		wachtwoordText2.setVisibleLength(40);

		wachtwoordText1.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (wachtwoordText1.getText().matches(".{4,}")) {
					goed11.setVisible(true);
					fout11.setVisible(false);
				}
				else {
					goed11.setVisible(false);
					fout11.setVisible(true);     
				}
				wachtwoordText2.setText("");
				goed12.setVisible(false);
				fout12.setVisible(false);
			}
		});  

		wachtwoordText2.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (wachtwoordText2.getText().matches(".{4,}") && wachtwoordText1.getText().equals(wachtwoordText2.getText())) {
					goed12.setVisible(true);
					fout12.setVisible(false);
				}
				else {
					goed12.setVisible(false);
					fout12.setVisible(true);     
				}
			}
		});
		horizon1.add(emailAdres);
		horizon1.add(emailBox);
		horizon1.add(goed10);
		horizon1.add(fout10);
		horizon2.add(wachtwoord1);
		horizon2.add(wachtwoordText1);
		horizon2.add(goed11);
		horizon2.add(fout11);
		horizon3.add(wachtwoord2);
		horizon3.add(wachtwoordText2);
		horizon3.add(goed12);
		horizon3.add(fout12);

		Label voornaam = new Label("Voornaam");
		voornaam.setStyleName("registreerVoornaamLabel");
		final TextBox voornaamText = new TextBox();
		voornaamText.setStyleName("registreerVoornaamText");

		voornaamText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (voornaamText.getText().matches("[a-z]")) {
					String s = voornaamText.getText();
					voornaamText.setText(s.toUpperCase());
				}
				if (voornaamText.getText().matches("^[a-zA-Z]+(([\\'\\,\\s\\.\\-][a-zA-Z])?[a-zA-Z]*)*$") && !voornaamText.getText().equals("")) {
					goed0.setVisible(true);
					fout0.setVisible(false);
				}
				else {
					fout0.setVisible(true);
					goed0.setVisible(false);
				}
			} 
		});

		Label achternaam = new Label("Achternaam");
		achternaam.setStyleName("registreerLabelOverig");
		final TextBox achternaamText = new TextBox();
		achternaamText.setStyleName("registreerVoornaamText");

		achternaamText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (achternaamText.getText().matches("^[a-zA-Z]+(([\\'\\,\\s\\.\\-][a-zA-Z])?[a-zA-Z]*)*$") && !achternaamText.getText().equals("")) {
					goed1.setVisible(true);
					fout1.setVisible(false);
				}
				else {
					fout1.setVisible(true);
					goed1.setVisible(false);
				}
			}
		});

		Label straatnaam = new Label("Straatnaam");
		straatnaam.setStyleName("registreerLabelOverig");

		final TextBox straatnaamText = new TextBox();
		straatnaamText.setStyleName("registreerVoornaamText");
		straatnaamText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (straatnaamText.getText().matches("[a-z]")) {
					String s = straatnaamText.getText();
					straatnaamText.setText(s.toUpperCase());
				}
				if (straatnaamText.getText().matches("^[a-zA-Z]+(([\\'\\,\\s\\.\\-][a-zA-Z])?[a-zA-Z]*)*$") && !straatnaamText.getText().equals("")) {
					goed3.setVisible(true);
					fout3.setVisible(false);
				}
				else {
					fout3.setVisible(true);
					goed3.setVisible(false);
				}
			}
		});

		Label huisnummer = new Label("Huisnummer");
		huisnummer.setStyleName("registreerLabelOverig");
		final TextBox huisnummerText = new TextBox();
		huisnummerText.setStyleName("registreerVoornaamText");
		huisnummerText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (huisnummerText.getText().matches("^\\d+(bis)|\\d+[a-z]|\\d+$") && !huisnummerText.getText().equals("")) {
					goed4.setVisible(true);
					fout4.setVisible(false);
				}
				else {
					fout4.setVisible(true);
					goed4.setVisible(false);
				}
			}
		});

		Label postcode = new Label("Postcode");
		postcode.setStyleName("registreerLabelOverig");
		final TextBox postcodeText = new TextBox();
		postcodeText.setStyleName("registreerVoornaamText");
		postcodeText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {

				if (postcodeText.getText().matches("^[1-9][0-9]{3}\\s?[a-zA-Z]{2}$") && !postcodeText.getText().equals("")) {
					goed5.setVisible(true);
					fout5.setVisible(false);
				}
				else {
					fout5.setVisible(true);
					goed5.setVisible(false);
				}
			}
		});

		Label woonplaats = new Label("Woonplaats");
		woonplaats.setStyleName("registreerLabelOverig");
		final TextBox woonplaatsText = new TextBox();
		woonplaatsText.setStyleName("registreerVoornaamText");
		woonplaatsText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (woonplaatsText.getText().matches("[a-z]")) {
					String s = woonplaatsText.getText();
					woonplaatsText.setText(s.toUpperCase());
				}
				if (woonplaatsText.getText().matches("[0-9]+") || woonplaatsText.getText().equals("")) {

					fout6.setVisible(true);
					goed6.setVisible(false);
				}
				else {
					goed6.setVisible(true);
					fout6.setVisible(false);
				}
			}

		});
		Label provincie = new Label("Provincie");
		provincie.setStyleName("registreerLabelOverig");
		final ListBox provincielijst = new ListBox();
		provincielijst.addItem("");
		provincielijst.addItem("Drenthe");
		provincielijst.addItem("Flevoland");
		provincielijst.addItem("Friesland");
		provincielijst.addItem("Gelderland");
		provincielijst.addItem("Groningen");
		provincielijst.addItem("Limburg");
		provincielijst.addItem("Noord-Brabant");
		provincielijst.addItem("Noord-Holland");
		provincielijst.addItem("Overijssel");
		provincielijst.addItem("Utrecht");
		provincielijst.addItem("Zeeland");
		provincielijst.addItem("Zuid-Holland");
		provincielijst.setStyleName("registeerListProv");

		provincielijst.addChangeHandler(new ChangeHandler() {
			@Override
			public void onChange(ChangeEvent event) {
				if (provincielijst.getValue(provincielijst.getSelectedIndex()).equals("")) {
					fout9.setVisible(true);
					goed9.setVisible(false);
				}
				else {
					goed9.setVisible(true);
					fout9.setVisible(false);
				}
			}
		});

		Label telefoon = new Label("Telefoonnummer");
		telefoon.setStyleName("registreerLabelOverig");
		final TextBox telefoonText = new TextBox();
		telefoonText.addKeyUpHandler(new KeyUpHandler(){

			public void onKeyUp(KeyUpEvent event) {
				if (telefoonText.getText().matches("^[0]{1}[0-9]{2}[\\-]{1}[0-9]{7}|[0]{1}[0-9]{3}[\\-]{1}[0-9]{6}|[0]{1}[0-9]{9}|[06]{2}[\\-]{1}[0-9]{8}$") && !telefoonText.getText().equals("")) {
					goed8.setVisible(true);
					fout8.setVisible(false);
				}
				else {
					fout8.setVisible(true);
					goed8.setVisible(false);
				} 
			}
		});
		telefoonText.setStyleName("registreerVoornaamText");
		Label geboorte = new Label("Geboortedatum");
		geboorte.addStyleName("registreerLabelOverig");
		final ListBox dag = new ListBox();
		dag.addItem("");
		for (int i=0;i<31;i++) {
			dag.addItem(""+(i+1));}
		dag.addStyleName("registreerTextgeb");
		final ListBox maand = new ListBox();
		maand.addItem("");
		maand.addItem("Januari");
		maand.addItem("Februari");
		maand.addItem("Maart");
		maand.addItem("April");
		maand.addItem("Mei");
		maand.addItem("Juni");
		maand.addItem("Juli");
		maand.addItem("Augustus");
		maand.addItem("September");
		maand.addItem("Oktober");
		maand.addItem("November");
		maand.addItem("December");
		maand.addStyleName("registreerTextgebMj");
		final ListBox jaar = new ListBox();
		jaar.addItem("");
		jaar.addStyleName("registreerTextgebMj");
		for (int i=1995;i>1900;i--) {
			jaar.addItem(""+i);}
		dag.addChangeHandler(new ChangeHandler() {
			@Override
			public void onChange(ChangeEvent event) {
				if (!jaar.getValue(jaar.getSelectedIndex()).equals("")){
					if (!dag.getValue(dag.getSelectedIndex()).equals("")&&!maand.getValue(maand.getSelectedIndex()).equals("")&&!jaar.getValue(jaar.getSelectedIndex()).equals("")){
						goed7.setVisible(true);
						fout7.setVisible(false);
					}
					else {
						fout7.setVisible(true);
						goed7.setVisible(false);
					}
				}
			}
		});

		maand.addChangeHandler(new ChangeHandler() {
			@Override
			public void onChange(ChangeEvent event) {
				if (!jaar.getValue(jaar.getSelectedIndex()).equals("")){
					if (!dag.getValue(dag.getSelectedIndex()).equals("")&&!maand.getValue(maand.getSelectedIndex()).equals("")&&!jaar.getValue(jaar.getSelectedIndex()).equals("")){
						goed7.setVisible(true);
						fout7.setVisible(false);
					}
					else {
						fout7.setVisible(true);
						goed7.setVisible(false);
					}
				}
			}
		});

		jaar.addChangeHandler(new ChangeHandler() {
			@Override
			public void onChange(ChangeEvent event) {
				if (!dag.getValue(dag.getSelectedIndex()).equals("")&&!maand.getValue(maand.getSelectedIndex()).equals("")&&!jaar.getValue(jaar.getSelectedIndex()).equals("")){
					goed7.setVisible(true);
					fout7.setVisible(false);
				}
				else {
					fout7.setVisible(true);
					goed7.setVisible(false);
				}
			}
		});

		horizon11.add(provincie);
		horizon11.add(provincielijst);
		horizon11.add(goed9);
		horizon11.add(fout9);
		horizon12.add(telefoon);
		horizon12.add(telefoonText);
		horizon12.add(goed8);
		horizon12.add(fout8);
		horizon14.add(geboorte);
		horizon14.add(dag);
		horizon14.add(maand);
		horizon14.add(jaar);
		horizon14.add(goed7);
		horizon14.add(fout7);
		horizon4.add(voornaam);
		horizon4.add(voornaamText);
		horizon4.add(goed0);
		horizon4.add(fout0);
		horizon5.add(achternaam);
		horizon5.add(achternaamText);
		horizon5.add(goed1);
		horizon5.add(fout1);
		horizon6.add(straatnaam);
		horizon6.add(straatnaamText);
		horizon6.add(goed3);
		horizon6.add(fout3);
		horizon7.add(huisnummer);
		horizon7.add(huisnummerText);
		horizon7.add(goed4);
		horizon7.add(fout4);
		horizon15.add(postcode);
		horizon15.add(postcodeText);
		horizon15.add(goed5);
		horizon15.add(fout5);
		horizon8.add(woonplaats);
		horizon8.add(woonplaatsText);
		horizon8.add(goed6);
		horizon8.add(fout6);
		vertical1.add(horizon4);
		vertical1.add(horizon5);
		vertical1.add(horizon14);
		vertical1.add(horizon6);
		vertical1.add(horizon7);
		vertical1.add(horizon15);
		vertical1.add(horizon8);
		vertical1.add(horizon11);
		vertical1.add(horizon12);
		vertical1.add(horizon1);
		vertical1.add(horizon2);
		vertical1.add(horizon3);

		Label typeAccount = new Label("Op welke manier wilt u carpoolen?");
		typeAccount.setStyleName("chapterReg");
		final RadioButton radiomanierreis1 = new RadioButton ("manierreis", "Eigen auto (chauffeur)");
		final RadioButton radiomanierreis2 = new RadioButton ("manierreis", "Andere auto (passagier");
		radiomanierreis2.setStyleName("registreerRadioManierreis");
		final Anchor back = new Anchor("Annuleren");
		back.addStyleName("registreerTerug2");
		final Button next = new Button("Volgende");
		next.addStyleName("registreerNext");
		next.setVisible(false);

		next.addClickHandler(new ClickHandler() {
			@Override
			public void onClick(ClickEvent event) {
				String vornam = voornaamText.getText();
				String achternam = achternaamText.getText();
				String straatnaam = straatnaamText.getText();
				String huisnmr = huisnummerText.getText();
				String postcde = postcodeText.getText();
				String wonplaats = woonplaatsText.getText();
				String prov = provincielijst.getValue(provincielijst.getSelectedIndex());
				thema.heeftInlog(emailBox.getText());
				AsyncCallback<Boolean> controle = new AsyncCallback<Boolean>() {
					@Override
					public void onFailure(Throwable caught) {
						// TODO Auto-generated method stub
					}
					@Override
					public void onSuccess(Boolean result) {
						if(result == true){
							Window.alert("Deze combinatie bestaat al");

						}
						if(result == false){
							if(true&&goed0.isVisible() == true && goed1.isVisible() == true && goed3.isVisible() == true && goed4.isVisible()==true&&goed5.isVisible() == true&&goed6.isVisible() == true&&goed7.isVisible() == true&&goed8.isVisible() == true&&goed9.isVisible() == true&&goed10.isVisible() == true&&goed11.isVisible() == true&&goed12.isVisible() == true){
								if(thema.heeftInlog(emailBox.getText()) == false){
									if(radiomanierreis1.getValue() == true){
										regTab.selectTab(1);
										TabBar myTabBar = new TabBar();
										myTabBar = regTab.getTabBar();
										myTabBar.setTabEnabled(2, false);
										myTabBar.setTabEnabled(1, true);
									}
									if(radiomanierreis2.getValue() == true){
										regTab.selectTab(2);
										TabBar myTabBar = new TabBar();
										myTabBar = regTab.getTabBar();
										myTabBar.setTabEnabled(2, true);
										myTabBar.setTabEnabled(1, false);
									}
								}
								if(thema.heeftInlog(emailBox.getText()) == true){
									Window.alert("Dit e-mailadres is al geregistreerd");
								}
							}
						}
					}
				};
				thema.myService.heeftAccount(vornam, achternam, straatnaam, huisnmr, postcde, wonplaats, prov, controle);
			}
		});

		radiomanierreis1.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				Date nu = new Date();
				int jr = Integer.parseInt(jaar.getValue(jaar.getSelectedIndex()));
				jr = jr - 1900;
				int nuw = nu.getYear();
				if(nuw - jr > 17){
					if(radiomanierreis1.getValue() == true){
						if(goed0.isVisible() == true && goed1.isVisible() == true && goed3.isVisible() == true && goed4.isVisible()==true&&goed5.isVisible() == true&&goed6.isVisible() == true&&goed7.isVisible() == true&&goed8.isVisible() == true&&goed9.isVisible() == true&&goed10.isVisible() == true&&goed11.isVisible() == true&&goed12.isVisible() == true){
							TabBar myTabBar = new TabBar();
							myTabBar = regTab.getTabBar();
							myTabBar.setTabEnabled(2, false);
							myTabBar.setTabEnabled(1, true);
						}
						if(!(goed0.isVisible() == true && goed1.isVisible() == true && goed3.isVisible() == true && goed4.isVisible()==true&&goed5.isVisible() == true&&goed6.isVisible() == true&&goed7.isVisible() == true&&goed8.isVisible() == true&&goed9.isVisible() == true&&goed10.isVisible() == true&&goed11.isVisible() == true&&goed12.isVisible() == true)){
							TabBar myTabBar = new TabBar();
							myTabBar = regTab.getTabBar();
							myTabBar.setTabEnabled(2, false);
							myTabBar.setTabEnabled(1, false);	
						}
						next.setVisible(true);
						back.removeStyleName("registreerTerug2");
						back.addStyleName("registreerTerug1");
					}
				}
				if(nuw-jr <= 17){
					Window.alert("U bent nog niet oud genoeg om een auto te besturen");
				}
			}
		});

		radiomanierreis2.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(radiomanierreis2.getValue() == true){
					if(goed0.isVisible() == true && goed1.isVisible() == true && goed3.isVisible() == true && goed4.isVisible()==true&&goed5.isVisible() == true&&goed6.isVisible() == true&&goed7.isVisible() == true&&goed8.isVisible() == true&&goed9.isVisible() == true&&goed10.isVisible() == true&&goed11.isVisible() == true&&goed12.isVisible() == true){
						TabBar myTabBar = new TabBar();
						myTabBar = regTab.getTabBar();
						myTabBar.setTabEnabled(2, true);
						myTabBar.setTabEnabled(1, false);	
					}
					if(!(goed0.isVisible() == true && goed1.isVisible() == true && goed3.isVisible() == true && goed4.isVisible()==true&&goed5.isVisible() == true&&goed6.isVisible() == true&&goed7.isVisible() == true&&goed8.isVisible() == true&&goed9.isVisible() == true&&goed10.isVisible() == true&&goed11.isVisible() == true&&goed12.isVisible() == true)){
						TabBar myTabBar = new TabBar();
						myTabBar = regTab.getTabBar();
						myTabBar.setTabEnabled(2, false);
						myTabBar.setTabEnabled(1, false);	
					}
					next.setVisible(true);

					back.removeStyleName("registreerTerug2");
					back.addStyleName("registreerTerug1");
				}
			}
		});


		back.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				thema.showInlog();
			}
		});

		horizon13.add(next);
		horizon13.add(back);

		horizon9.add(typeAccount);
		horizon10.add(radiomanierreis1);
		horizon10.add(radiomanierreis2);

		vertical1.add(horizon9);
		vertical1.add(horizon10);
		vertical1.add(horizon13);

		//Tab passagier zonder auto
		FlowPanel tab2Panel = new FlowPanel();
		VerticalPanel eindPanel = new VerticalPanel();
		HorizontalPanel horizon16 = new HorizontalPanel();
		HorizontalPanel horizon17 = new HorizontalPanel();
		HorizontalPanel horizon18 = new HorizontalPanel();
		HorizontalPanel horizon19 = new HorizontalPanel();
		HorizontalPanel horizon20 = new HorizontalPanel();
		HorizontalPanel horizon21 = new HorizontalPanel();
		HorizontalPanel horizon22 = new HorizontalPanel();
		HorizontalPanel horizon23 = new HorizontalPanel();
		HorizontalPanel horizon24 = new HorizontalPanel();
		HorizontalPanel horizon25 = new HorizontalPanel();
		HorizontalPanel horizon26 = new HorizontalPanel();
		HorizontalPanel empty = new HorizontalPanel();
		HorizontalPanel empty2 = new HorizontalPanel();
		HorizontalPanel empty3 = new HorizontalPanel();

		Label title = new Label("Wat zijn uw persoonlijke voorkeuren voor tijdens de reis?");
		title.setStyleName("registreer2zonderTitle");
		Label reizen = new Label("Reizen:");
		reizen.addStyleName("registreer2ZonderReizen");
		Label roken = new Label("Roken:");
		Label fiets = new Label("Fiets");
		Label nothing = new Label("");
		nothing.addStyleName("registreren2nothing");
		Label nothing2 = new Label("");
		nothing2.addStyleName("registreren2nothing");
		Label nothing3 = new Label("");
		nothing3.addStyleName("registreren2nothing3");
		empty.add(nothing);
		empty2.add(nothing2);
		empty3.add(nothing3);

		final RadioButton reizen1 = new RadioButton("reizen", "In een keer");
		reizen1.addStyleName("registreer2ZonderReizen1");
		final RadioButton reizen2 = new RadioButton("reizen", "Met overnachting");
		reizen2.addStyleName("registreer2Reizen23");
		final RadioButton reizen3 = new RadioButton("reizen", "Geen voorkeur");
		reizen3.addStyleName("registreer2Reizen23");

		reizen1.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (reizen1.getValue() == true){
					labreizen = "in een keer";
					goed20.setVisible(true);
				}
			}
		});
		reizen2.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (reizen2.getValue() == true){
					labreizen = "met overnachting";
					goed20.setVisible(true);
				}
			}
		});
		reizen3.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (reizen3.getValue() == true){
					labreizen = "geen voorkeur";
					goed20.setVisible(true);
				}
			}
		});

		final RadioButton roken1 = new RadioButton("roken", "Ja, in auto");
		roken1.addStyleName("registreer2ZonderRoken1");
		final RadioButton roken2 = new RadioButton("roken", "Ja, maar niet in auto");
		roken2.addStyleName("registreer2Reizen23");
		final RadioButton roken3 = new RadioButton("roken", "Nee");
		roken3.addStyleName("registreer2Reizen23");
		final RadioButton roken4 = new RadioButton("roken", "Geen Voorkeur");
		roken4.addStyleName("registreer2Reizen23");

		roken1.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(roken1.getValue() == true){
					labroken ="ja, in auto";
					goed21.setVisible(true);
				}
			}
		});
		roken2.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(roken2.getValue() == true){
					labroken ="ja, maar niet in auto";
					goed21.setVisible(true);
				}
			}
		});
		roken3.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(roken3.getValue() == true){
					labroken ="nee";
					goed21.setVisible(true);
				}
			}
		});
		roken4.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(roken4.getValue() == true){
					labroken ="geen voorkeur";
					goed21.setVisible(true);
				}
			}
		});


		final RadioButton fiets1 = new RadioButton("fiets", "Wel mee");
		fiets1.addStyleName("registreer2ZonderFiets1");
		final RadioButton fiets2 = new RadioButton("fiets", "Niet mee");
		fiets2.addStyleName("registreer2Reizen23");

		fiets1.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (fiets1.getValue() == true){
					labfiets = "wel mee";
					goed22.setVisible(true);
				}
			}
		});
		fiets2.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (fiets2.getValue() == true){
					labfiets = "niet mee";
					goed22.setVisible(true);
				}
			}
		});


		Anchor terug = new Anchor("Annuleren");
		terug.addStyleName("registreer2terug");
		terug.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				thema.showInlog();
			}

		});
		Button savereg = new Button("Registreer");
		savereg.addStyleName("registreer2zonderbutton");

		savereg.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				int dg = 0;
				int jr = 0;
				int mnd = 0;
				if(maand.isItemSelected(1)){
					mnd = 0;
				}
				if(maand.isItemSelected(2)){
					mnd = 1;
				}
				if(maand.isItemSelected(3)){
					mnd = 2;
				}
				if(maand.isItemSelected(4)){
					mnd = 3;
				}
				if(maand.isItemSelected(5)){
					mnd = 4;
				}
				if(maand.isItemSelected(6)){
					mnd = 5;
				}
				if(maand.isItemSelected(7)){
					mnd = 6;
				}
				if(maand.isItemSelected(8)){
					mnd = 7;
				}
				if(maand.isItemSelected(9)){
					mnd = 8;
				}
				if(maand.isItemSelected(10)){
					mnd = 9;
				}
				if(maand.isItemSelected(11)){
					mnd = 10;
				}
				if(maand.isItemSelected(12)){
					mnd = 11;
				}
				jr = Integer.parseInt(jaar.getValue(jaar.getSelectedIndex()));
				dg = 1+Integer.parseInt(dag.getValue(dag.getSelectedIndex()));
				final Date geb = new Date(jr-1900, mnd, dg);
				final String mailaddress = emailBox.getText();

				if(!(goed22.isVisible()==true&&goed21.isVisible()==true&&goed20.isVisible()==true&&goed0.isVisible() == true && goed1.isVisible() == true && goed3.isVisible() == true && goed4.isVisible()==true&&goed5.isVisible() == true&&goed6.isVisible() == true&&goed7.isVisible() == true&&goed8.isVisible() == true&&goed9.isVisible() == true&&goed10.isVisible() == true&&goed11.isVisible() == true&&goed12.isVisible() == true)){
					Window.alert("U heeft niet alle gegevens correct ingevuld");
				}

				if(thema.heeftInlog(mailaddress) == true){
					Window.alert("Dit e-mailadres is al geregistreerd");
				}

				if(goed22.isVisible()==true&&goed21.isVisible()==true&&goed20.isVisible()==true&&goed0.isVisible() == true && goed1.isVisible() == true && goed3.isVisible() == true && goed4.isVisible()==true&&goed5.isVisible() == true&&goed6.isVisible() == true&&goed7.isVisible() == true&&goed8.isVisible() == true&&goed9.isVisible() == true&&goed10.isVisible() == true&&goed11.isVisible() == true&&goed12.isVisible() == true){
					if(thema.heeftInlog(mailaddress) == false){
						String vornam = voornaamText.getText();
						String achternam = achternaamText.getText();
						String straatnaam = straatnaamText.getText();
						String huisnmr = huisnummerText.getText();
						String postcde = postcodeText.getText();
						String wonplaats = woonplaatsText.getText();
						String prov = provincielijst.getValue(provincielijst.getSelectedIndex());
						AsyncCallback<Boolean> controle1 = new AsyncCallback<Boolean>() {
							@Override
							public void onFailure(Throwable caught) {
								// TODO Auto-generated method stub
							}
							@Override
							public void onSuccess(Boolean result) {
								if(result == false){
									String vrnm = voornaamText.getText();
									String achtrnm = achternaamText.getText();
									String strnm = straatnaamText.getText();
									String nr = huisnummerText.getText();
									String pstcd = postcodeText.getText();
									String wnplts = woonplaatsText.getText();
									String prvnc = provincielijst.getValue(provincielijst.getSelectedIndex());
									String tlnmr = telefoonText.getText();
									String ww = wachtwoordText2.getText();
									String tpe = "zonder auto";
									thema.voegZonderAutoToe(mailaddress, ww, vrnm, achtrnm, geb, strnm, nr, pstcd, wnplts, prvnc, tlnmr, tpe, labreizen, labroken, labfiets);
								}
								if(result == true){
									Window.alert("De opgegeven gegevens zijn al geregistreerd");
								}
							}
						};
						thema.myService.heeftAccount(vornam, achternam, straatnaam, huisnmr, postcde, wonplaats, prov, controle1);
					}
				}
			}
		});

		horizon26.add(terug);
		horizon26.add(savereg);

		horizon16.add(title);
		horizon17.add(reizen);
		horizon17.add(reizen1);
		horizon17.add(goed20);
		horizon18.add(reizen2);
		horizon19.add(reizen3);
		horizon20.add(roken);
		horizon20.add(roken1);
		horizon20.add(goed21);
		horizon21.add(roken2);
		horizon22.add(roken3);
		horizon23.add(roken4);
		horizon24.add(fiets);
		horizon24.add(fiets1);
		horizon24.add(goed22);
		horizon25.add(fiets2);
		

		eindPanel.add(horizon16);
		eindPanel.add(horizon17);
		eindPanel.add(horizon18);
		eindPanel.add(horizon19);
		eindPanel.add(empty);
		eindPanel.add(horizon20);
		eindPanel.add(horizon21);
		eindPanel.add(horizon22);
		eindPanel.add(horizon23);
		eindPanel.add(empty2);
		eindPanel.add(horizon24);
		eindPanel.add(horizon25);
		eindPanel.add(empty3);
		eindPanel.add(horizon26);

		tab2Panel.add(eindPanel);

		//Tab passagier met auto
		FlowPanel tab2MetAuto = new FlowPanel();
		VerticalPanel eindPanel2 = new VerticalPanel();
		HorizontalPanel horizon27 = new HorizontalPanel();
		HorizontalPanel horizon28 = new HorizontalPanel();
		HorizontalPanel horizon29 = new HorizontalPanel();
		HorizontalPanel horizon30 = new HorizontalPanel();
		HorizontalPanel horizon31 = new HorizontalPanel();
		HorizontalPanel horizon32 = new HorizontalPanel();
		HorizontalPanel horizon33 = new HorizontalPanel();
		HorizontalPanel horizon34 = new HorizontalPanel();
		HorizontalPanel horizon35 = new HorizontalPanel();
		HorizontalPanel horizon36 = new HorizontalPanel();
		HorizontalPanel horizon37 = new HorizontalPanel();
		HorizontalPanel horizon38 = new HorizontalPanel();
		HorizontalPanel horizon39 = new HorizontalPanel();
		HorizontalPanel horizon40 = new HorizontalPanel();
		HorizontalPanel horizon41 = new HorizontalPanel();
		HorizontalPanel horizon42 = new HorizontalPanel();
		HorizontalPanel horizon43 = new HorizontalPanel();
		HorizontalPanel horizon44 = new HorizontalPanel();
		HorizontalPanel horizon45 = new HorizontalPanel();

		Label empty1 = new Label("");
		empty1.addStyleName("registreermetempty");
		Label empty5 = new Label("");
		empty2.addStyleName("registreermetempty");
		Label empty6 = new Label("");
		empty3.addStyleName("registreermetempty");
		Label empty4 = new Label("");
		empty4.addStyleName("registreermetempty");

		Label title1 = new Label("Wat zijn uw autogegevens?");
		title1.addStyleName("registreren2metTitle1");
		Label title2 = new Label("Wat zijn uw persoonlijke voorkeuren tijdens de reis voor in uw auto?");
		title2.addStyleName("registreren2metTitle2");
		Label merk = new Label("Merk auto:");
		merk.addStyleName("registreer2metMerk");
		final TextBox merkText = new TextBox();
		merkText.addStyleName("registreerMerkText");

		merkText.addKeyUpHandler(new KeyUpHandler() {

			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (merkText.getText().matches("^[a-z]{1}$")) {
					String s = merkText.getText();
					merkText.setText(s.toUpperCase());
				}
				if (!merkText.getText().equals("")) {
					goed13.setVisible(true);
					fout13.setVisible(false);
				}
				else {
					fout13.setVisible(true);
					goed13.setVisible(false);
				}
			}
		});

		Label type = new Label("Type auto:");
		type.addStyleName("registeer2metTypeLab");
		final TextBox typeText = new TextBox();
		typeText.addStyleName("registreer2metTextbox");

		typeText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (typeText.getText().matches("^[a-z]{1}$")) {
					String s = typeText.getText();
					typeText.setText(s.toUpperCase());
				}
				if (!typeText.getText().equals("")) {
					goed14.setVisible(true);
					fout14.setVisible(false);
				}
				else {
					fout14.setVisible(true);
					goed14.setVisible(false);
				}
			}
		});

		Label plaats = new Label("Aantal plaatsen in uw auto incl. chauffeur");
		plaats.addStyleName("registeer2metTypeLab");
		final TextBox plaatsText = new TextBox();
		plaatsText.addStyleName("registreer2metTextbox");
		Label plaatsen = new Label("plaatsen");

		plaatsText.addKeyUpHandler(new KeyUpHandler() {
			@Override
			public void onKeyUp(KeyUpEvent event) {
				if (plaatsText.getText().matches("^[a-z]{1}$")) {
					String s = plaatsText.getText();
					plaatsText.setText(s.toUpperCase());
				}
				if (plaatsText.getText().matches("^[0-9]{1,}$")) {
					goed15.setVisible(true);
					fout15.setVisible(false);
				}
				else {
					fout15.setVisible(true);
					goed15.setVisible(false);
				}
			}
		});

		Label titleprovincie = new Label("Ik rijd door de volgende provincies:");
		final CheckBox drenthe = new CheckBox("Drenthe");
		final CheckBox flevoland = new CheckBox("Flevoland");
		flevoland.setStyleName("reg2checkbox1");
		final CheckBox friesland = new CheckBox("Friesland");
		friesland.setStyleName("reg2checkbox1");
		final CheckBox gelderland = new CheckBox("Gelderland");
		gelderland.setStyleName("reg2checkbox1");
		final CheckBox groningen = new CheckBox("Groningen");
		final CheckBox limburg = new CheckBox("Limburg");
		limburg.setStyleName("reg2checkbox2");
		final CheckBox noordbrabant = new CheckBox("Noord-Brabant");
		noordbrabant.setStyleName("reg2checkbox3");
		final CheckBox noordholland = new CheckBox("Noord-Holland");
		noordholland.setStyleName("reg2checkbox4");
		final CheckBox overijssel = new CheckBox("Overijssel");
		final CheckBox utrecht = new CheckBox("Utrecht");
		utrecht.setStyleName("reg2checkbox5");
		final CheckBox zeeland = new CheckBox("Zeeland");
		zeeland.setStyleName("reg2checkbox6");
		final CheckBox zuidholland = new CheckBox("Zuid-Holland");
		zuidholland.setStyleName("reg2checkbox3");

		drenthe.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(drenthe.getValue() == true){
					provincies[0] = true;
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(drenthe.getValue() == false){
					provincies[0] = false;
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		flevoland.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(flevoland.getValue() == true){
					provincies[1] = true;
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(flevoland.getValue() == false){
					provincies[1] = false;
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		friesland.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(friesland.getValue() == true){
					provincies[2] = true;
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(friesland.getValue() == false){
					provincies[2] = false;
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		gelderland.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(gelderland.getValue() == true){
					provincies[3] = true;
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(gelderland.getValue() == false){
					provincies[3] = false;
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		groningen.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(groningen.getValue() == true){
					provincies[4] = true;
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(groningen.getValue() == false){
					provincies[4] = false;
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		limburg.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(limburg.getValue() == true){
					provincies[5] = true;
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}	
				}
				if(limburg.getValue() == false){
					provincies[5] = false;
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		noordbrabant.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(noordbrabant.getValue() == true){
					provincies[6] = true;
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(noordbrabant.getValue() == false){
					provincies[6] = false;
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		noordholland.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(noordholland.getValue() == true){
					provincies[7] = true;
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(noordholland.getValue() == false){
					provincies[7] = false;
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		overijssel.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(overijssel.getValue() == true){
					provincies[8] = true;
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(overijssel.getValue() == false){
					provincies[8] = false;
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		utrecht.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(utrecht.getValue() == true){
					provincies[9] = true;
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(utrecht.getValue() == false){
					provincies[9] = false;
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		zeeland.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(zeeland.getValue() == true){
					provincies[10] = true;
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if(zeeland.getValue() == false){
					provincies[10] = false;
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});
		zuidholland.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (zuidholland.getValue() == true){
					provincies[11] = true;
					aantalCheckBox++;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
				if (zuidholland.getValue() == false){
					provincies[11] = false;
					aantalCheckBox--;
					if (aantalCheckBox > 1) {
						goed16.setVisible(true);
						fout16.setVisible(false);
					}
					else
					{
						goed16.setVisible(false);
						fout16.setVisible(true);
					}
				}
			}
		});


		Label reizen5 = new Label("Reizen:");
		reizen5.addStyleName("registreer2metreizen");
		Label roken5 = new Label("Roken:");
		roken5.addStyleName("registreer2metreizen");
		Label fiets5 = new Label("Fiets");
		fiets5.addStyleName("registreer2metreizen");
		Label commentaar = new Label("Typ hieronder uw overige opmerkingen neer, die gelden voor uw auto. Bijv. bagage:");
		final RadioButton reizen6 = new RadioButton("reizen", "In een keer");
		reizen6.addStyleName("registreer2metreizenradio1");
		final RadioButton reizen7 = new RadioButton("reizen", "Met overnachting");
		reizen7.addStyleName("registreer2metreizenradio2");

		reizen6.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (reizen6.getValue() == true){
					labreizen = "in een keer";
					goed17.setVisible(true);

				}
			}
		});
		reizen7.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (reizen7.getValue() == true){
					labreizen = "met overnachting";
					goed17.setVisible(true);

				}
			}
		});

		final RadioButton roken6 = new RadioButton("roken", "Ja in auto");
		roken6.addStyleName("registreer2metreizenradio2");
		final RadioButton roken7 = new RadioButton("roken", "Ja, maar niet in auto");
		roken7.addStyleName("registreer2metrokenradio2");
		final RadioButton roken8 = new RadioButton("roken", "Nee");
		roken8.addStyleName("registreer2metrokenradio3");

		roken6.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(roken6.getValue() == true){
					labroken ="ja, in auto";
					goed18.setVisible(true);

				}
			}
		});
		roken7.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(roken7.getValue() == true){
					labroken ="ja, maar niet in auto";
					goed18.setVisible(true);

				}
			}
		});
		roken8.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if(roken8.getValue() == true){
					labroken ="nee";
					goed18.setVisible(true);

				}
			}
		});

		final RadioButton fiets6 = new RadioButton("fiets", "Wel mee");
		fiets6.addStyleName("registreer2metfietsradio1");
		final RadioButton fiets7 = new RadioButton("fiets", "Niet mee");
		fiets7.addStyleName("registreer2metfietsradio1");

		fiets6.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (fiets6.getValue() == true){
					labfiets = "wel mee";
					goed19.setVisible(true);

				}
			}
		});
		fiets7.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				if (fiets7.getValue() == true){
					labfiets = "niet mee";
					goed19.setVisible(true);

				}
			}
		});

		final TextArea commentaarText = new TextArea();
		commentaarText.addStyleName("registreren2metcomment");

		Anchor back2 = new Anchor("Annuleren");
		back2.addStyleName("registreren2metannuleren");

		back2.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				thema.showInlog();
			}
		});

		Button savereg2 = new Button("Registreer");
		savereg2.addStyleName("registreren2metButton");

		savereg2.addClickHandler(new ClickHandler(){
			@Override
			public void onClick(ClickEvent event) {
				int dg = 0;
				int jr = 0;
				int mnd = 0;
				if(maand.isItemSelected(1)){
					mnd = 0;
				}
				if(maand.isItemSelected(2)){
					mnd = 1;
				}
				if(maand.isItemSelected(3)){
					mnd = 2;
				}
				if(maand.isItemSelected(4)){
					mnd = 3;
				}
				if(maand.isItemSelected(5)){
					mnd = 4;
				}
				if(maand.isItemSelected(6)){
					mnd = 5;
				}
				if(maand.isItemSelected(7)){
					mnd = 6;
				}
				if(maand.isItemSelected(8)){
					mnd = 7;
				}
				if(maand.isItemSelected(9)){
					mnd = 8;
				}
				if(maand.isItemSelected(10)){
					mnd = 9;
				}
				if(maand.isItemSelected(11)){
					mnd = 10;
				}
				if(maand.isItemSelected(12)){
					mnd = 11;
				}
				jr = Integer.parseInt(jaar.getValue(jaar.getSelectedIndex()));
				dg = 1+Integer.parseInt(dag.getValue(dag.getSelectedIndex()));
				jr = jr-1900;
				Date nu = new Date();
				int nuw = nu.getYear();
				final Date geb = new Date(jr, mnd, dg);
				final String mailaddress = emailBox.getText();

				if(goed19.isVisible()==true&&goed18.isVisible()==true&&goed17.isVisible()==true &&goed0.isVisible() == true && goed1.isVisible() == true && goed3.isVisible() == true && goed4.isVisible()==true&&goed5.isVisible() == true&&goed6.isVisible() == true&&goed7.isVisible() == true&&goed8.isVisible() == true&&goed9.isVisible() == true&&goed10.isVisible() == true&&goed11.isVisible() == true&&goed12.isVisible() == true&&goed13.isVisible()==true&&goed14.isVisible()==true&&goed15.isVisible()==true&&goed16.isVisible()==true){
					if(nuw - jr > 17){
						if(thema.heeftInlog(mailaddress) == false){
							String vornam = voornaamText.getText();
							String achternam = achternaamText.getText();
							String straatnaam = straatnaamText.getText();
							String huisnmr = huisnummerText.getText();
							String postcde = postcodeText.getText();
							String wonplaats = woonplaatsText.getText();
							String prov = provincielijst.getValue(provincielijst.getSelectedIndex());
							AsyncCallback<Boolean> controle2 = new AsyncCallback<Boolean>() {
								@Override
								public void onFailure(Throwable caught) {
									// TODO Auto-generated method stub
								}
								@Override
								public void onSuccess(Boolean result) {
									if(result == false){
										String vrnm = voornaamText.getText();
										String achtrnm = achternaamText.getText();
										String strnm = straatnaamText.getText();
										String nr = huisnummerText.getText();
										String pstcd = postcodeText.getText();
										String wnplts = woonplaatsText.getText();
										String prvnc = provincielijst.getValue(provincielijst.getSelectedIndex());
										String tlnmr = telefoonText.getText();
										String ww = wachtwoordText2.getText();
										String tpe = "met auto";
										String autoMerk = merkText.getText();
										String autoType = typeText.getText();
										int autoPlaatsen = Integer.parseInt(plaatsText.getText());
										String comment = commentaarText.getText();
										if(comment.trim().equals("")){
											comment = "Geen commentaar opgegeven";
										}
										thema.voegMetAutoToe(mailaddress, ww, vrnm, achtrnm, geb, strnm, nr, pstcd, wnplts, prvnc, tlnmr, tpe, labreizen, labroken, labfiets, autoMerk, autoType, autoPlaatsen, provincies, comment);
									}
								}
							};
							thema.myService.heeftAccount(vornam, achternam, straatnaam, huisnmr, postcde, wonplaats, prov, controle2);
						}
					}
					if(!(goed19.isVisible()==true&&goed18.isVisible()==true&&goed17.isVisible()==true &&goed0.isVisible() == true && goed1.isVisible() == true && goed3.isVisible() == true && goed4.isVisible()==true&&goed5.isVisible() == true&&goed6.isVisible() == true&&goed7.isVisible() == true&&goed8.isVisible() == true&&goed9.isVisible() == true&&goed10.isVisible() == true&&goed11.isVisible() == true&&goed12.isVisible() == true&&goed13.isVisible()==true&&goed14.isVisible()==true&&goed15.isVisible()==true&&goed16.isVisible()==true)){
						Window.alert("U heeft niet alle gegevens geldig ingevuld");
					}
					if(nuw-jr <= 17){
						Window.alert("U bent nog niet oud genoeg om een auto te besturen");
					}
					if(thema.heeftInlog(mailaddress) == true){
						Window.alert("Dit e-mailadres is al geregistreerd");
					}
				}
			}
		});

		horizon27.add(title1);
		horizon28.add(title2);
		horizon29.add(empty1);
		horizon30.add(merk);
		horizon30.add(merkText);
		horizon30.add(goed13);
		horizon30.add(fout13);
		horizon31.add(type);
		horizon31.add(typeText);
		horizon31.add(goed14);
		horizon31.add(fout14);
		horizon32.add(plaats);
		horizon32.add(plaatsText);
		horizon32.add(plaatsen);
		horizon32.add(goed15);
		horizon32.add(fout15);
		horizon33.add(empty5);
		horizon34.add(titleprovincie);
		horizon35.add(drenthe);
		horizon35.add(flevoland);
		horizon35.add(friesland);
		horizon35.add(gelderland);
		horizon36.add(groningen);
		horizon36.add(limburg);
		horizon36.add(noordbrabant);
		horizon36.add(noordholland);
		horizon36.add(goed16);
		horizon36.add(fout16);
		horizon37.add(overijssel);
		horizon37.add(utrecht);
		horizon37.add(zeeland);
		horizon37.add(zuidholland);
		horizon38.add(empty6);
		horizon39.add(reizen5);
		horizon39.add(reizen6);
		horizon39.add(reizen7);
		horizon39.add(goed17);
		horizon40.add(roken5);
		horizon40.add(roken6);
		horizon40.add(roken7);
		horizon40.add(roken8);
		horizon40.add(goed18);
		horizon41.add(fiets5);
		horizon41.add(fiets6);
		horizon41.add(fiets7);
		horizon41.add(goed19);
		horizon42.add(empty4);
		horizon43.add(commentaar);
		horizon44.add(commentaarText);
		horizon45.add(back2);
		horizon45.add(savereg2);

		eindPanel2.add(horizon27);
		eindPanel2.add(horizon29);
		eindPanel2.add(horizon30);
		eindPanel2.add(horizon31);
		eindPanel2.add(horizon32);
		eindPanel2.add(horizon33);
		eindPanel2.add(horizon34);
		eindPanel2.add(horizon35);
		eindPanel2.add(horizon36);
		eindPanel2.add(horizon37);
		eindPanel2.add(horizon38);
		eindPanel2.add(horizon28);
		eindPanel2.add(horizon39);
		eindPanel2.add(horizon40);
		eindPanel2.add(horizon41);
		eindPanel2.add(horizon42);
		eindPanel2.add(horizon43);
		eindPanel2.add(horizon44);
		eindPanel2.add(horizon45);
		tab2MetAuto.add(eindPanel2);

		//Alles samenvoegen
		regTab.add(vertical1, "Account gegevens");
		regTab.add(tab2MetAuto, "Chauffeursgegevens");
		regTab.add(tab2Panel, "Passagiersgegevens");
		regPanel.add(regTab);
		regTab.selectTab(0);
		regBar.setTabEnabled(1, false);
		regBar.setTabEnabled(2, false);
		registreren.add(regPanel);
		registreren.setSize("600", "400");
		return registreren;
	}
}